[新機能]Snowflakeの新しいアカウント「Organization Account」を試してみた

[新機能]Snowflakeの新しいアカウント「Organization Account」を試してみた

Clock Icon2024.11.27

さがらです。

2024年10月のリリースで、Snowflakeに新しいアカウントである「Organization Account」が追加されました。※2024年11月27日時点、パブリックプレビューの機能です。

https://docs.snowflake.com/en/release-notes/2024/other/2024-10-01-organization-account

このOrganization Accountを実際に作って触ってみたので、その内容を本記事でまとめてみます。

Organization Accountとは

https://docs.snowflake.com/en/user-guide/organization-accounts

Organization Accountですが、「管理者がOrganization全体に影響するタスクを実行するために使用する特別な種類のアカウント」となります。

下記は公式Docからの引用ですが、このようなタスクがOrganization Accountで行うことが出来ます。

  • 各アカウントからのクエリ履歴など、Organization内のすべてのアカウントから収集されたデータを表示します。
  • Organization全体で Snowflake Marketplaceの利用規約を有効にします。
  • アカウントの作成や削除など、Organization内のアカウントのライフサイクルを管理します。
  • アカウントのレプリケーションを有効にします。

ORGADMINロールとの棲み分け

これまでSnowflakeでOrganizationレベルの操作を行う場合には、ORGADMINというロールを使っていました。

公式Docを見る限りでは、今後以下の流れでORGADMINロールからOrganization Accountに移行していくようです。

  • Organization Accountのプレビュー期間中
    • ORGADMINロールでもOrganization Accountでも、Organizationレベルの操作が可能
  • Organization Accountが一般提供となった時
    • 移行期間を設けて、ORGADMINロールからOrganization Accountに移行をしていく

注意事項:Organization Accountを作成するとコストが発生します

Organization Accountですが、作成するとコストが発生します。

具体的には、Organization Account専用のビューのために下記の2つが発生します。この点だけご注意ください。

  • Organization Account専用のビューに使用するデータ入力に用いるサーバーレスタスクのコスト
  • Organization Account専用のビューに使用するデータのストレージのコスト

公式Docからの引用ですが、下記のクエリをOrganization Accountで実行することで、どのくらいのコストがかかるか試算を行うことが出来ます。

  • サーバーレスタスクのコスト
SELECT * FROM snowflake.organization_usage.usage_in_currency_daily
  WHERE usage_type = 'organization usage';
  • ストレージのコスト
SELECT
  SUM(active_bytes + time_travel_bytes + failsafe_bytes + retained_for_clone_bytes) / pow(1000, 4)
    AS org_usage_approx_storage_tb
  FROM snowflake.account_usage.table_storage_metrics
  WHERE 1=1
    AND table_schema = 'ORGANIZATION_USAGE_LOCAL';

注意事項:ORGANIZATION_USAGEスキーマについて

Organization Accountを作成すると、ORGANIZATION_USAGEというスキーマ内のビューでOrganization内のすべてのアカウントから収集されたデータを見ることが出来ます。

ただし、このORGANIZATION_USAGEスキーマについては下記の注意事項があります。

  • データの更新まで最大24時間要すること
  • 各アカウントのデータを置き換えることなく新しいデータを追加する仕様のため、365日を越えたデータが保存されること(公式Doc
    • ただし、Organization Accountを有効化してから保持開始となるため、Organization Accountを有効化したからこれまでの全データが全て確認できる、というわけではないためご注意ください。

試してみた

では、実際にOrganization Accountを試してみたいと思います。

Organization Accountの作成

任意のORGADMINロールが利用できるアカウントで、以下のクエリを実行します。

USE ROLE ORGADMIN;

CREATE ORGANIZATION ACCOUNT myorgaccount
    ADMIN_NAME = admin
    ADMIN_PASSWORD = 'TestPassword1'
    EMAIL = 'myemail@myorg.org'
    MUST_CHANGE_PASSWORD = true
    EDITION = enterprise;

すると、下図のように表示されるため、表示されたURLを控えておきます。

2024-11-25_11h22_14

Organization AccountへのログインとGLOBALORGADMINロールの確認

先ほど控えたURLをブラウザで貼り付けて、ログインします。

見た目は普通のアカウントですが、左下のロールを見ると、GLOBALORGADMINというロールが付与されています。このロールには、以下の権限が付与されています。

  • Organization Account事態の管理を含む、全てのOrganizationレベルのタスク(アカウントの管理、Organizationの規約や連絡先の管理)
  • ORGANIZATION_USAGE内のビューの閲覧と、権限の付与

2024-11-25_11h27_24

ORGANIZATION_USAGEスキーマ内のビューの確認

実際に、ORGANIZATION_USAGEスキーマ内のビューを確認してみます。(アカウント作成後、約40時間経過後に確認した内容を本記事で載せています。初回の同期処理はアカウント作成後から18時間後には完了していました。)

通常のACCOUNT_USAGEにも存在するACCESS_HISTORYをクエリすると、積み重ねる形式のため365日以上経過したデータも保存されています。(このデータを確認したのは2024年11月27日6時20分頃。)

また、ORGANIATION_NAMEACCOUNT_LOCATORACCOUNT_NAMEという、ORGANIZATION_USAGEスキーマのビュー用に追加されたカラムも確認できます。

2024-11-26_06h46_55

参考までに、従来のORGADMINで確認できたORGANIZATION_USAGEスキーマと、今回試しているOrganization Accountで確認できるORGANIZATION_USAGEスキーマのビューの一覧を画像で載せておきます。Organization Accountだとより多くのビューが対応しているのがわかりますね!

  • 従来のORGADMINで確認できたORGANIZATION_USAGEスキーマ

2024-11-26_07h08_56

  • 新機能のOrganization Accountで確認できるORGANIZATION_USAGEスキーマ

2024-11-26_07h10_25

2024-11-26_07h11_16

最後に

Snowflakeに新しいアカウントである「Organization Account」を試してみました。

Organization AccountのORGANIZATION_USAGEスキーマだと、過去365日を越えたOrganization内の各アカウントのACCOUNT_USAGEスキーマのデータを自動で保持できるのが良いなと思いました!(社内の監査要件などで365日以上のデータを保持しないといけないケースはあると思いますので…)

まだプレビュー機能であることと、Organization Accountを作るとデータ保持のためのにサーバーレスタスクやストレージのコストはかかりますが、過去365日を越えたデータを保持しておきたい場合にはぜひOrganization Accountを作ってみてください!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.